|
RAIS
3.2
|
00001 using System; 00002 using System.Collections.Generic; 00003 using System.Linq; 00004 using System.Web; 00005 using System.Web.UI; 00006 using System.Web.UI.WebControls; 00007 using RAIS.Common.UserManagement; 00008 using System.Globalization; 00009 00010 namespace RAIS.UI.SpecificMasks 00011 { 00012 public partial class MessageBoxTakeover : System.Web.UI.Page 00013 { 00014 enum PageMode 00015 { 00016 viewTakeOver, 00017 addTakeOver, 00018 editTakeOver 00019 }; 00020 00021 #region event handlers 00022 protected void Page_Load(object sender, EventArgs e) 00023 { 00024 if (this.CurrentUser == null) 00025 UI.Common.AccessManagement.SignOut(this); 00026 00027 00028 if (!this.IsPostBack) 00029 { 00030 DDLyesNo.Items.Add(RAIS.ApplicationLogicLayer.Localisation.Translate("No", "ASP.messageboxtakeover_aspx", RAIS.Common.Constants.DEFAULT_LANGUAGE, this.CurrentUser.Language)); 00031 DDLyesNo.Items.Add(RAIS.ApplicationLogicLayer.Localisation.Translate("Yes", "ASP.messageboxtakeover_aspx", RAIS.Common.Constants.DEFAULT_LANGUAGE, this.CurrentUser.Language)); 00032 this.BTNdelete.Attributes.Add("onclick", string.Format("javascript: return confirm('{0}');", RAIS.Common.Messages.DELETE_QUESTION_MESSAGEBOX_RESTRICTION.Replace("'", "\\'"))); 00033 this.LBLusernameNoTranslation.Text = this.CurrentUser.Login; 00034 this.LBLmessage.ForeColor = RAIS.UI.Common.Constants.COLOR_OF_MENU_BAR_TEXT_HIGHLIGHT; 00035 this.LBLValidFromDescription.Text = UI.Common.DynamicMaskManagement.GetNationalDateFormatString(true); 00036 this.LBLValidUntilDescription.Text = UI.Common.DynamicMaskManagement.GetNationalDateFormatString(true); 00037 00038 /*if (this.Session[RAIS.UI.Common.Constants.SELECTED_USER_TAG] != null) 00039 { 00040 this.TBSelectedUser.Text = ((UserData)this.Session[RAIS.UI.Common.Constants.SELECTED_USER_TAG]).Login; 00041 } 00042 else 00043 { 00044 this.TBSelectedUser.Text = ""; 00045 }*/ 00046 //this.Session[RAIS.UI.Common.Constants.SELECTED_USER_TAG] = null; 00047 //this.TBSelectedUser.Text = ""; 00048 00049 00050 //this.initSelectUserListbox(); 00051 this.initSelectUserDropDownList(); 00052 00053 this.CurrentPageMode = PageMode.viewTakeOver; 00054 UI.Common.Localisation.TranslateGridViewHeader(this.GVUserAssignments, this.ToString(), RAIS.Common.Constants.DEFAULT_LANGUAGE, this.CurrentUser.Language); 00055 UI.Common.PageManagement.InitializePage(this, this.TreeView1); 00056 00057 if (this.DDLSelectedUser.Items.Count >= 0) 00058 { 00059 UserData bufferedUser = ((UserData)this.Session[RAIS.UI.Common.Constants.SELECTED_USER_TAG]); 00060 if (this.Session[RAIS.UI.Common.Constants.SELECTED_USER_TAG] != null && this.userListContains(this.Level3Users, bufferedUser)) 00061 { 00062 //this.TBSelectedUser.Text = ((UserData)this.Session[RAIS.UI.Common.Constants.SELECTED_USER_TAG]).Login; 00063 //this.LBselectUser.SelectedValue = this.TBSelectedUser.Text; 00064 this.DDLSelectedUser.SelectedValue = ((UserData)this.Session[RAIS.UI.Common.Constants.SELECTED_USER_TAG]).Login; 00065 } 00066 else 00067 { 00068 //this.LBselectUser.SelectedIndex = 0; 00069 //this.TBSelectedUser.Text = this.LBselectUser.SelectedValue; 00070 this.DDLSelectedUser.SelectedIndex = 0; 00071 } 00072 00073 /*if (this.SelectedUserAssignment != null) 00074 { 00075 this.initGridView(); 00076 } 00077 else 00078 { 00079 this.GVUserAssignments.DataSource = new List<UserAssignment>(); 00080 this.GVUserAssignments.DataBind(); 00081 }*/ 00082 this.initGridView(); 00083 this.GVUserAssignments.SelectedIndex = -1; 00084 } 00085 else 00086 { 00087 //this.LBselectUser.SelectedIndex = -1; 00088 this.DDLSelectedUser.SelectedIndex = -1; 00089 } 00090 } 00091 //UI.Common.Localisation.TranslatePage(this); 00092 UI.Common.PageManagement.InitHelpMainMenu(LBTNdefault); 00093 } 00094 00095 00096 protected void GVUserAssignments_RowCommand(object sender, GridViewCommandEventArgs e) 00097 { 00098 if (e.CommandName.Equals("Select")) 00099 { 00100 int rowIndex = Convert.ToInt32(e.CommandArgument); 00101 this.GVUserAssignments.SelectedIndex = rowIndex; 00102 this.EnableDisableControls(); 00103 } 00104 } 00105 00112 protected void LBTNlogout_Click(object sender, EventArgs e) 00113 { 00114 UI.Common.AccessManagement.SignOut(this); 00115 } 00122 protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e) 00123 { 00124 UI.Common.UserManagement.ProcessTreeViewOnRedirect(this.TreeView1); 00125 } 00126 00127 protected void LBAvailableUsers_selectedIndexChanged(object sender, EventArgs e) 00128 { 00129 //this.checkAddDeleteButtons(); 00130 } 00131 00132 00133 protected void DDLSelectedUser_SelectedIndexChanged(object sender, EventArgs e) 00134 { 00135 this.Session[RAIS.UI.Common.Constants.TAKEOVER_ASSIGNED_USERS] = null; 00136 initGridView(); 00137 } 00138 00139 00146 protected void BTNadd_Click(object sender, EventArgs e) 00147 { 00148 //this.checkAddDeleteButtons(); 00149 this.CurrentPageMode = PageMode.addTakeOver; 00150 00151 } 00158 protected void BTNedit_Click(object sender, EventArgs e) 00159 { 00160 //this.checkAddDeleteButtons(); 00161 this.CurrentPageMode = PageMode.editTakeOver; 00162 } 00169 protected void BTNdelete_Click(object sender, EventArgs e) 00170 { 00171 /*initializeMove(); 00172 this.checkAddDeleteButtons(); 00173 this.CurrentPageMode = PageMode.editTakeOver;*/ 00174 bool success = true; 00175 success = this.deleteUserAssignment(); 00176 } 00183 protected void BTNdiscard_Click(object sender, EventArgs e) 00184 { 00185 this.CurrentPageMode = PageMode.viewTakeOver; 00186 this.availableUsers = null; 00187 //this.assignedUsers = null; 00188 //this.initAlreadyAssignedListbox(); 00189 00190 } 00197 protected void BTNsave_Click(object sender, EventArgs e) 00198 { 00199 string message = String.Empty; 00200 bool success = true; 00201 00202 try 00203 { 00204 DateTime from = DateTime.Parse(this.TBValidFrom.Text); 00205 DateTime until = DateTime.Parse(this.TBValidUntil.Text); 00206 if (from > until) 00207 { 00208 success = false; 00209 message = RAIS.UI.Common.Constants.RESTRICTION_SAVE_DATE_FAIL; 00210 } 00211 } 00212 catch (Exception) 00213 { 00214 success = false; 00215 } 00216 00217 00218 if (!success) 00219 { 00220 message = String.Empty.Equals(message) ? RAIS.UI.Common.Constants.TAKE_OVER_SAVE_FAIL : message; 00221 RAIS.UI.Common.MessageDisplay.DisplayReturnMessage(this.LBLresult, 00222 message, 00223 success); 00224 } 00225 else 00226 { 00227 if (this.CurrentPageMode == PageMode.addTakeOver) 00228 { 00229 success = this.createUserAssignment(); 00230 } 00231 if (this.CurrentPageMode == PageMode.editTakeOver) 00232 { 00233 success = this.editUserAssignment(); 00234 } 00235 } 00236 00237 } 00238 00239 protected void DDLyesNo_selectedIndexChanged(object sender, EventArgs e) 00240 { 00241 this.initGridView(); 00242 } 00243 00244 #endregion 00245 00246 #region private helpers 00247 00248 private void initGridView() 00249 { 00250 if (ApplicationLogicLayer.UserManagement.GetUserAssignmentsForUser(this.selectedUser).Count < 1) 00251 this.GVUserAssignments.EmptyDataText = "No restrictions have been taken over by this user"; 00252 else 00253 this.GVUserAssignments.EmptyDataText = "There are no active restriction take overs for this user"; 00254 this.GVUserAssignments.DataSource = this.UserAssignments; 00255 this.GVUserAssignments.DataBind(); 00256 this.GVUserAssignments.SelectedIndex = -1; 00257 } 00258 00262 private void EnableDisableControls() 00263 { 00264 this.BTNadd.Enabled = (this.CurrentPageMode == PageMode.viewTakeOver) && (this.selectedUser != null); 00265 this.BTNedit.Enabled = (this.CurrentPageMode == PageMode.viewTakeOver) && (this.selectedUser != null) && (this.SelectedUserAssignment != null); 00266 this.BTNdelete.Enabled = (this.CurrentPageMode == PageMode.viewTakeOver) && (this.selectedUser != null) && (this.SelectedUserAssignment != null); 00267 this.BTNsave.Enabled = !(this.CurrentPageMode == PageMode.viewTakeOver); 00268 this.BTNdiscard.Enabled = !(this.CurrentPageMode == PageMode.viewTakeOver); 00269 /*this.FSMoveControls.Visible = !(this.CurrentPageMode == PageMode.viewTakeOver); 00270 this.LBLUserAssignment.Visible = !(this.CurrentPageMode == PageMode.viewTakeOver); 00271 this.LBCurrentlyAssignedUsers.Visible = (this.CurrentPageMode == PageMode.viewTakeOver); 00272 this.LBLCurrentlyAssigned.Visible = (this.CurrentPageMode == PageMode.viewTakeOver); 00273 this.LBLUserAssignment.Visible = !(this.CurrentPageMode == PageMode.viewTakeOver); 00274 * */ 00275 this.DDLyesNo.Enabled = (this.CurrentPageMode == PageMode.viewTakeOver); 00276 this.DDLSelectedUser.Enabled = (this.CurrentPageMode == PageMode.viewTakeOver); 00277 this.LBDefinition.Enabled = (this.CurrentPageMode == PageMode.viewTakeOver); 00278 this.LBHistory.Enabled = (this.CurrentPageMode == PageMode.viewTakeOver); 00279 this.TBLEditFields.Visible = !(this.CurrentPageMode == PageMode.viewTakeOver); 00280 00281 UI.Common.UserManagement.EnableCommonControls(this, (this.CurrentPageMode == PageMode.viewTakeOver)); 00282 } 00283 #endregion 00284 00285 00286 #region private helpers 00287 00288 private bool userListContains(List<UserData> list, UserData user) 00289 { 00290 foreach (UserData u in list) 00291 { 00292 if (u.ID == user.ID) 00293 return true; 00294 } 00295 return false; 00296 } 00297 00298 private bool createUserAssignment() 00299 { 00300 UserAssignment ua = new UserAssignment(); 00301 bool success = (this.DDLTakeOverUser.SelectedIndex != -1); 00302 DateTime validFrom = new DateTime(); 00303 DateTime validUntil = new DateTime(); 00304 string outputMessage = String.Empty; 00305 try 00306 { 00307 validFrom = DateTime.Parse(this.TBValidFrom.Text); 00308 validUntil = DateTime.Parse(this.TBValidUntil.Text); 00309 } 00310 catch (Exception e) 00311 { 00312 success = false; 00313 } 00314 00315 if (success) 00316 { 00317 ua.ValidFrom = validFrom; 00318 ua.ValidUntil = validUntil; 00319 ua.TakenOverUser = this.availableUsers[this.DDLTakeOverUser.SelectedIndex]; 00320 00321 success = UI.Common.UserManagement.createUserAssignmentForUser(ua, this.selectedUser, ref outputMessage); 00322 } 00323 else 00324 { 00325 outputMessage = RAIS.UI.Common.Constants.MESSAGEBOX_USERASSIGNMENT_ADDED_FAIL; 00326 } 00327 00328 this.CurrentPageMode = PageMode.viewTakeOver; 00329 initGridView(); 00330 00331 if (outputMessage == null || outputMessage.Equals(string.Empty)) 00332 outputMessage = RAIS.UI.Common.Constants.MESSAGEBOX_USERASSIGNMENT_ADDED; 00333 00334 00335 RAIS.UI.Common.MessageDisplay.DisplayReturnMessage(this.LBLresult, 00336 outputMessage, 00337 success); 00338 return success; 00339 } 00340 00341 private bool editUserAssignment() 00342 { 00343 UserAssignment ua = this.SelectedUserAssignment; 00344 bool success = (this.DDLTakeOverUser.SelectedIndex != -1); 00345 DateTime validFrom = new DateTime(); 00346 DateTime validUntil = new DateTime(); 00347 string outputMessage = String.Empty; 00348 try 00349 { 00350 validFrom = DateTime.Parse(this.TBValidFrom.Text); 00351 validUntil = DateTime.Parse(this.TBValidUntil.Text); 00352 } 00353 catch (Exception e) 00354 { 00355 success = false; 00356 } 00357 00358 if (success) 00359 { 00360 ua.ValidFrom = validFrom; 00361 ua.ValidUntil = validUntil; 00362 ua.TakenOverUser = this.availableUsers[this.DDLTakeOverUser.SelectedIndex]; 00363 00364 success = UI.Common.UserManagement.editUserAssignment(ua, ref outputMessage); 00365 } 00366 else 00367 { 00368 outputMessage = RAIS.UI.Common.Constants.MESSAGEBOX_USERASSIGNMENT_EDITED_FAIL; 00369 } 00370 00371 this.CurrentPageMode = PageMode.viewTakeOver; 00372 initGridView(); 00373 00374 if (outputMessage == null || outputMessage.Equals(string.Empty)) 00375 outputMessage = RAIS.UI.Common.Constants.MESSAGEBOX_USERASSIGNMENT_EDITED; 00376 00377 00378 RAIS.UI.Common.MessageDisplay.DisplayReturnMessage(this.LBLresult, 00379 outputMessage, 00380 success); 00381 return success; 00382 } 00383 00384 private void initEdit() 00385 { 00386 UserAssignment ua = this.SelectedUserAssignment; 00387 if (ua != null) 00388 { 00389 this.DDLTakeOverUser.SelectedValue = ua.TakenOverUser.Login; 00390 char[] stripParenth = { '(', ')' }; 00391 string format = UI.Common.DynamicMaskManagement.GetNationalDateFormatString(true).Trim().Trim(stripParenth); 00392 this.TBValidFrom.Text = ua.ValidFrom.ToString(format); 00393 this.TBValidUntil.Text = ua.ValidUntil.ToString(format); 00394 } 00395 } 00396 00397 private bool deleteUserAssignment() 00398 { 00399 bool success = this.selectedUser != null; 00400 string outputMessage = string.Empty; 00401 if (success) 00402 { 00403 UserAssignment ua = this.SelectedUserAssignment; 00404 00405 success = UI.Common.UserManagement.deleteUserAssignment(ua, ref outputMessage); 00406 } 00407 00408 00409 this.CurrentPageMode = PageMode.viewTakeOver; 00410 initGridView(); 00411 00412 if (outputMessage == null || outputMessage.Equals(string.Empty)) 00413 outputMessage = RAIS.UI.Common.Constants.MESSAGEBOX_USERASSIGNMENT_DELETED; 00414 00415 00416 RAIS.UI.Common.MessageDisplay.DisplayReturnMessage(this.LBLresult, 00417 outputMessage, 00418 success); 00419 return success; 00420 } 00421 00422 private UserAssignment SelectedUserAssignment 00423 { 00424 get 00425 { 00426 if (this.UserAssignments != null && this.GVUserAssignments.SelectedIndex != -1 && this.GVUserAssignments.SelectedIndex < this.UserAssignments.Count) 00427 return this.UserAssignments[this.GVUserAssignments.SelectedIndex]; 00428 else 00429 return null; 00430 } 00431 } 00432 00433 private void initSelectUserDropDownList() 00434 { 00435 this.DDLSelectedUser.DataSource = this.Level3Users; 00436 this.DDLSelectedUser.DataBind(); 00437 } 00438 00439 #endregion 00440 00441 #region Properties 00442 00443 public List<UserData> Level3Users 00444 { 00445 get 00446 { 00447 List<UserData> levelThreeUsers = UI.Common.UserManagement.GetLevelThreeUsers().Values.ToList<UserData>(); 00448 00449 //filter 00450 // only users that have restrictions set 00451 List<UserData> usersToRemove = new List<UserData>(); 00452 foreach (UserData user in levelThreeUsers) 00453 { 00454 //if(UI.Common.UserManagement.getMessageBoxDataRoleByUser(user) == null) 00455 if (UI.Common.UserManagement.getActiveMessageBoxRestrictionsForUser(user).Count < 1) 00456 usersToRemove.Add(user); 00457 } 00458 foreach (UserData userRemove in usersToRemove) 00459 { 00460 levelThreeUsers.Remove(userRemove); 00461 } 00462 00463 return levelThreeUsers; 00464 } 00465 } 00466 00467 public List<UserAssignment> UserAssignments 00468 { 00469 get 00470 { 00471 if (this.DDLyesNo.SelectedIndex == 0) 00472 return ApplicationLogicLayer.UserManagement.GetUserAssignmentsForUser(this.selectedUser, DateTime.Now); 00473 else 00474 return ApplicationLogicLayer.UserManagement.GetUserAssignmentsForUser(this.selectedUser); 00475 } 00476 } 00477 00478 public List<UserData> availableUsers 00479 { 00480 get 00481 { 00482 //if (this.Session[RAIS.UI.Common.Constants.TAKEOVER_AVAILABLE_USERS] == null) 00483 //{ 00484 List<UserData> users = RAIS.UI.Common.UserManagement.GetLevelThreeUsers().Values.ToList<UserData>(); 00485 UserData todelete = new UserData(); 00486 foreach (UserData ud in users) 00487 { 00488 if (ud.ID == this.selectedUser.ID) 00489 todelete = ud; 00490 } 00491 users.Remove(todelete); 00492 00493 this.Session[RAIS.UI.Common.Constants.TAKEOVER_AVAILABLE_USERS] = users; 00494 //} 00495 00496 00497 return (List<UserData>)this.Session[RAIS.UI.Common.Constants.TAKEOVER_AVAILABLE_USERS]; 00498 } 00499 set 00500 { 00501 this.Session[RAIS.UI.Common.Constants.TAKEOVER_AVAILABLE_USERS] = value; 00502 } 00503 } 00504 00505 public UserData selectedUser 00506 { 00507 get 00508 { 00509 try 00510 { 00511 UserData userData = null; 00512 if (this.DDLSelectedUser.SelectedValue != null && this.DDLSelectedUser.SelectedValue != "") 00513 { 00514 userData = ApplicationLogicLayer.UserManagement.GetUserData(this.DDLSelectedUser.SelectedValue); 00515 } 00516 else if (this.Session[RAIS.UI.Common.Constants.SELECTED_USER_TAG] != null) 00517 { 00518 userData = (UserData)this.Session[RAIS.UI.Common.Constants.SELECTED_USER_TAG]; 00519 } 00520 00521 this.Session[RAIS.UI.Common.Constants.SELECTED_USER_TAG] = userData; 00522 return userData; 00523 } 00524 catch (Exception) 00525 { 00526 return null; 00527 } 00528 00529 00530 } 00531 } 00532 00540 PageMode CurrentPageMode 00541 { 00542 get 00543 { 00544 if (this.Session[UI.Common.Constants.TAKEOVER_EDIT_MODE_TAG] != null) 00545 { 00546 return (PageMode)this.Session[UI.Common.Constants.TAKEOVER_EDIT_MODE_TAG]; 00547 } 00548 else 00549 return PageMode.viewTakeOver; 00550 } 00551 set 00552 { 00553 string message = string.Empty; 00554 switch (value) 00555 { 00556 case PageMode.addTakeOver: 00557 //UI.Common.UserManagement.InitializeCustomUsersListBox(this.LBAvailableUsers, this.availableUsers); 00558 message = RAIS.UI.Common.Constants.ADDING_NEW_USER_ASSIGNMENT; 00559 this.DDLTakeOverUser.DataSource = this.availableUsers; 00560 this.DDLTakeOverUser.DataBind(); 00561 break; 00562 case PageMode.editTakeOver: 00563 message = RAIS.UI.Common.Constants.EDITING_EXISTING_USER_ASSIGNMENT; 00564 00565 //UI.Common.UserManagement.InitializeCustomUsersListBox(this.LBAvailableUsers, this.availableUsers); 00566 this.DDLTakeOverUser.DataSource = this.availableUsers; 00567 this.DDLTakeOverUser.DataBind(); 00568 initEdit(); 00569 //initializeMove(); 00570 break; 00571 00572 default: 00573 this.Session[RAIS.UI.Common.Constants.TAKEOVER_ASSIGNMENT_TEMPORARY_TAG] = null; 00574 message = string.Empty; 00575 this.initSelectUserDropDownList(); 00576 break; 00577 } 00578 RAIS.UI.Common.MessageDisplay.DisplayReturnMessage(this.LBLresult, message, true); 00579 this.Session[UI.Common.Constants.TAKEOVER_EDIT_MODE_TAG] = value; 00580 this.EnableDisableControls(); 00581 } 00582 } 00583 00587 protected UserData CurrentUser 00588 { 00589 get { return (UserData)this.Session[UI.Common.Constants.CURRENT_USER_TAG]; } 00590 } 00591 #endregion 00592 } 00593 }